DBSyncer: DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。 您所在的位置:网站首页 oracle数据同步工具 好用 DBSyncer: DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

DBSyncer: DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

2023-07-03 06:08| 来源: 网络整理| 查看: 265

介绍

logo

DBSyncer是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

特点

组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志 开发插件,自定义转化同步逻辑

项目地址

Gitee GitHub

star fork license

🌈应用场景 连接器 数据源 目标源 支持版本(包含以下) MySQL ✔ ✔ 5.7.19以上 Oracle ✔ ✔ 10gR2 -11g SqlServer ✔ ✔ 2008以上 PostgreSQL ✔ ✔ 9.5.25以上 ES ✔ ✔ 6.0以上 Kafka 开发中 ✔ 2.10-0.9.0.0以上 File ✔ ✔ *.txt, *.unl SQL ✔ 支持以上关系型数据库 后期计划 Redis 📦安装配置 步骤 安装JDK 1.8(省略详细) 下载安装包DBSyncer-1.0.0-RC.zip(也可手动编译) 解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.sh 打开浏览器访问:http://127.0.0.1:18686 账号和密码:admin/admin 增量同步配置(源库) MySQL Dump Binlog二进制日志。Master同步Slave, 创建IO线程读取数据,写入relaylog,基于消息订阅捕获增量数据。

修改my.ini文件,重启服务

#服务唯一ID server_id=1 log-bin=mysql_bin binlog-format=ROW max_binlog_cache_size = 256M max_binlog_size = 512M #监听同步的库, 多个库使用英文逗号“,”拼接 replicate-do-db=test

准备账号用于数据同步(这里我为test数据库创建了ae86账号,并授权)

CREATE USER 'ae86'@'%' IDENTIFIED WITH mysql_native_password BY '123'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'ae86'@'%'; GRANT SELECT ON test.* TO 'ae86'@'%'; flush privileges; Oracle CDN注册订阅。监听增删改事件,得到rowid,根据rowid执行SQL查询,得到变化数据。

1、授予账号监听权限, 同时要求目标源表必须定义一个长度为18的varchar字段,通过接收rowid值实现增删改操作。

grant change notification to 你的账号

2、账号必须是监听表的OWNER

SELECT OBJECT_ID, OBJECT_NAME, OWNER FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER='你的账号';

DCN账号

SqlServer SQL Server 2008提供了内建的方法变更数据捕获(Change Data Capture 即CDC)以实现异步跟踪用户表的数据修改。

要求2008版本以上, 启动代理服务(Agent服务), 连接账号具有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。对于所有其他用户,具有源表SELECT 权限;如果已定义捕获实例的访问控制角色,则还要求具有该数据库角色的成员身份。

启动 代理 和 数据库 服务

输入图片说明

准备测试账号,test

输入图片说明

分配sysadmin角色

输入图片说明

分配指定数据库权限

输入图片说明

PostgreSQL 通过复制流技术监听增量事件,基于内置插件pgoutput、test_decoding实现解析wal日志

1、修改postgresql.conf文件,重启服务

wal_level=logical

2、授予账号权限LOGIN和REPLICATION

File 监听文件修改时间得到变化文件,通过文件偏移量读取最新数据

监听文件实现方案

ES 定时获取增量数据。

账号具有访问权限。

日志

建议MySQL、SqlServer、PostgreSQL都使用日志

日志

定时

假设源表数据格式

表数据格式 定时和过滤条件

✨预览 驱动管理

连接器和驱动

驱动详情

驱动详情

驱动表字段关系配置

驱动表字段关系配置

监控

监控

上传插件

上传插件

🎨设计 架构图 🔗开发依赖 JDK - 1.8.0_202 Maven - 3.3.9(推荐版本以上) ⚙️手动编译

先确保环境已安装JDK和Maven

$ git clone https://gitee.com/ghi/dbsyncer.git $ cd dbsyncer $ chmod u+x build.sh $ ./build.sh 🐞常见问题 MySQL无法连接。默认使用的驱动版本为5.1.40,如果为mysql8需要手动替换驱动 mysql-connector-java-8.0.21.jar SQLServer无法连接。案例:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]” 同步数据乱码。案例:mysql8表导入sqlserver2008R2后,sqlserver表nvarchar字段内容为乱码 如何开启远程debug模式? 有其他问题、建议或需求(如想支持某中间件,记得补充使用的版本号),欢迎大家提【issuses】! 🏆性能测试 类型 耗时 数据量 机器配置 MySQL全量同步 202s 1000w MacBook Pro 2.4 GHz 四核Intel Core i5 16 GB 2133 MHz LPDDR3 💕了解更多 使用说明:博客地址(小提示:现在需要先登录,才能查看完整的教程信息,包含截图等😂) QQ群: 875519623或点击右侧按钮数据同步dbsyncer 🤝贡献支持 为了能让项目得到更好的可持续的发展,我们期望获得更多的支持者,我们将把所得款项用于项目研发和推广。您可以通过如下方式支持我们: 我们会把详细的捐赠记录登记在【捐赠者名单】。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有